package com.lh.tams.controller.system;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.lh.tams.domain.TamsModule;
import com.lh.tams.service.ModuleService;
import com.lh.tams.util.DataGridModel;
import com.lh.tams.util.ID;
import com.lh.tams.util.Page;
import com.lh.tams.util.Status;
import com.lh.tams.util.diy.Json;

@RequestMapping("/module")
@Controller
public class ModuleController {
	
	private ModuleService moduleService;

	public void setModuleService(ModuleService moduleService) {
		this.moduleService = moduleService;
	}
	
	@RequestMapping("/queryAll.adm")
	@ResponseBody
	public Page queryAll(DataGridModel dgm){
		return moduleService.queryAll(dgm);
	}
	
	@RequestMapping("/add.adm")
	@ResponseBody
	public Json add(TamsModule module,long parentId){
		TamsModule parentModule=null;
		if(parentId>0)
			parentModule=moduleService.getModuleById(parentId);
		module.setTamsModule(parentModule);
		module.setIdBgt(ID.next());
		module.setStatus(Status.STATUS_NORMAL);
		moduleService.add(module);
		return new Json();
	}
	
	@RequestMapping("/update.adm")
	@ResponseBody
	public Json update(TamsModule module,long parentId){
		TamsModule parentModule=null;
		if(parentId>0)
			parentModule=moduleService.getModuleById(parentId);
		module.setTamsModule(parentModule);
		moduleService.update(module);
		return new Json();
	}
	
	@RequestMapping("/del.adm")
	@ResponseBody
	public Json delete(long[] ids){
		moduleService.delete(ids);
		return new Json();
	}
	
	@RequestMapping("/queryParent.adm")
	@ResponseBody
	public List<TamsModule> queryParent(){
		return moduleService.queryParent();
	}
	
	@RequestMapping("/queryTree.adm")
	public String queryTree(HttpServletRequest request){
		List<TamsModule> list=moduleService.queryParent();
		Map<String, List<TamsModule>> map=new HashMap<String,List<TamsModule>>();
		for(int i=0;i<list.size();i++){
			map.put(list.get(i).getIdBgt()+"", moduleService.querySubModule(list.get(i).getIdBgt()));
		}
		
		request.setAttribute("list", list);
		request.setAttribute("map", map);
		return "/pages/role/setting_module";
	}
}
